package com.monster.valid.utils;

import com.monster.exception.impl.MonsterNoTackException;
import com.monster.utils.StringUtils;
import com.monster.valid.common.ValidExceptionEnum;

/**
 * 公共工具类
 *
 * @author kuang
 */
public class ValidCommonUtils {

    /**
     * 空判断校验
     *
     * @param isNull 是否可以为空
     * @param value  值
     * @return boolean
     */
    public static boolean checkNull(Boolean isNull, String name, String validMsg, Object value) {
        if (isNull && value == null) {
            // 规定可以为空，数据为空的情况下不校验
            return true;
        }
        if (!isNull && value == null) {
            ValidCommonUtils.exception(ValidExceptionEnum.VALID_NOT_NULL, name, validMsg, "数据不能为空");
        }
        return false;
    }

    /**
     * 抛出异常
     *
     * @param exceptionEnum 异常枚举
     * @param msg           异常信息
     */
    public static void exception(ValidExceptionEnum exceptionEnum, String name, String validMsg, String msg) {
        if (StringUtils.isEmpty(validMsg)) {
            validMsg = msg;
        }
        if (StringUtils.isEmpty(validMsg)) {
            validMsg = exceptionEnum.getMsg();
        }
        throw new MonsterNoTackException(exceptionEnum.getCode(), "【" + name + "】: " + validMsg + "!");
    }

    /**
     * 抛出异常
     *
     * @param code 异常编码
     * @param msg  异常信息
     */
    public static void exception(String code, String name, String validMsg, String msg) {
        if (StringUtils.isEmpty(validMsg)) {
            validMsg = msg;
        }
        throw new MonsterNoTackException(code, "【" + name + "】: " + validMsg + "!");
    }
}
